//
//  SecondViewController.m
//  WebView
//
//  Created by 吴小明 on 2017/6/5.
//  Copyright © 2017年 qel. All rights reserved.
//

#import "SecondViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController
    
- (void)viewDidLoad {
    UILabel *label1=[[UILabel alloc]init];
    label1.frame=CGRectMake(38, 80, 300, 30);
    label1.backgroundColor=[UIColor whiteColor];
    label1.text=@"This is secondviewcontroller";
    [self.view addSubview:label1];
    
    UIButton *btn2=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn2.frame=CGRectMake(38, 120, 300, 30);
    [btn2 setTitle:@"backTo" forState:UIControlStateNormal];
    btn2.backgroundColor=[UIColor orangeColor];
    [self.view addSubview:btn2];
    [btn2 addTarget:self action:@selector(backTo) forControlEvents:UIControlEventTouchUpInside];
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}
//可以手动设置pop出栈，相当于删除这个页面，跳转到其他页面
//popViewControllerAnimated就是弹出，因为弹出只能弹出最上面的栈顶的那个，所以可以不用指定参数
//popToRootViewControllerAnimated-就是直接跳转到根视图控制图，如果只有两层，那么和popViewControllerAnimated并无区别，如果有很多层，那么其实就是相当于不仅把自己pop出去，还把所有除了根视图控制图之外的所有视图控制器都pop出去了，所以就相当于跳转到根视图控制器了
//popToViewController-就是跳转到指定的视图控制器xxx，这个xxx一定要在这个栈里面，即一定是在我们当前这个视图控制器的下面的，所以跳转也就是把自己和在xxx上面的所有视图控制器都pop出去，然后相当于直接跳转到xxx
//此处重点是这个xxx怎么获取，按照一般理解是用xxx再初始化一个视图控制器对象yyy，然后把这个对象yyy作为popToViewController参数
//但事实是，yyy是新初始化的，不在栈中，当然和在栈中的xxx初始化的那个对象也不是同一个对象，所以会报错（因为在栈中找不到啊）
//所以，self.navigationController.viewControllers出场，viewControllers是个数组，储存的时导航控制器栈中所有的视图控制器，最先push进去的时0，以此类推，最上面的肯定是数组的最后一个
//所以，那个xxx之前初始化的对象，可以用[self.navigationController.viewControllers objectAtIndex:0]表示，此处0就是根视图控制器
//所以，只要拿到navigationController，貌似能做很多事情
-(void)backTo{
    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
}

@end

